package 类和对象;

//public class Test_4_12 {
//    public static void main(String[] args) {
//
//        Student c1 = new Student();
//        c1.height = 181;
//        c1.age = 23;
//        c1.name = "爱搭搭";
//        c1.sex = "男";
//        c1.Print();
//        Student.conut++;
//        Student.conut++;
//        System.out.println(Student.conut);
//        Student c2 = new Student();
//        Student.conut++;
//        System.out.println(c2.conut);
//
//        Student.run();
//
//
//    }
//}

//class Person {
//    public int age;//实例变量   存放在对象内
//    public String name;//实例变量
//    public String sex;//实例变量
//    public static int count;//类变量也叫静态变量，编译时已经产生，属于类本身，且只有一份。存放在方法区
//    public final int SIZE = 10;//被final修饰的叫常量，也属于对象。 被final修饰，后续不可更改
//    public static final int  COUNT = 99;//静态的常量，属于类本身，只有一份 被final修饰，后续不可更改
//    //实例成员函数
//    public void eat() {
//        int a = 10;//局部变量
//        System.out.println("eat()!");
//    }
//    //实例成员函数
//    public void sleep() {
//        System.out.println("sleep()!");
//    }
//    //静态成员函数
//    public static void staticTest(){
//        //不能访问非静态成员
//        //sex = "man"; error
//        System.out.println("StaticTest()");
//    }
//}
//public class Test_4_12 {
//    public static void main(String[] args){
//        //产生对象 实例化对象
//        Person person = new Person();//person为对象的引用
//        System.out.println(person.age);//默认值为0
//        System.out.println(person.name);//默认值为null
//        System.out.println(person.count);//会有警告!
//        //正确访问方式：
//        System.out.println(Person.count);
//        System.out.println(Person.COUNT);
//        Person.staticTest();
//        //总结：所有被static所修饰的方法或者属性，全部不依赖于对象。
//        person.eat();
//        person.sleep();
//    }
//}

//class Person {
//    public String name = "张三";
//    public int age = 18;
//}
//class Test_4_12 {
//    public static void main(String[] args) {
//        Person person = new Person();
//        System.out.println("我叫" + person.name + ", 今年" + person.age + "岁");
//    }
//}

//class Person {
//    private String name = "张三";
//    private int age = 18;
//
//    public void show() {
//        System.out.println("我叫" + name + ", 今年" + age + "岁");
//    }
//}
//class Test_4_12 {
//    public static void main(String[] args) {
//        Person person = new Person();
//        person.age = 10;
//
//        person.show();
//    }
//}
//

//class Person {
//
//    private String name;//实例成员变量
//    private int age;
//    private String sex;
//    //默认构造函数 构造对象
//    public Person() {
//        this.name = "小王";
//        this.age = 10;
//        this.sex = "男";
//    }
//    //带有3个参数的构造函数
//    public Person(String name,int age,String sex) {
//        this.name = name;
//        this.age = age;
//        this.sex = sex;
//    }
//    public void show(){
//        System.out.println("name: "+name+" age: "+age+" sex: "+sex);
//    }
//
//}
//public class Test_4_12{
//    public static void main(String[] args) {
//        Person p1 = new Person();//调用不带参数的构造函数 如果程序没有提供会调用不带参数的构造函数
//        p1.show();
//        Person p2 = new Person("小丽",18,"女");//调用带有3个参数的构造函数
//        p2.show();
//    }
//}

//class Person {
//    private String name;//实例成员变量
//    private int age;
//    private String sex;
//
//    //默认构造函数 构造对象
//    public Person() {
//        //this调用构造函数
//        this("薛之谦", 38, "男");//必须放在第一行进行显示
//        //调用了下面定义的 构造方法 快速赋值。
//    }
//
//    //这两个构造函数之间的关系为重载。
//    public Person(String name,int age,String sex) {
//        this.name = name;
//        this.age = age;
//        this.sex = sex;
//    }
//    public void show() {
//        System.out.println("name: "+name+" age: "+age+" sex: "+sex);
//    }
//}
//public class Test_4_12 {
//    public static void main(String[] args) {
//        Person person1 = new Person();//调用不带参数的构造函数
//        person1.show();
//                                         //自定义内容
//        Person person2 = new Person("周杰伦",42,"男");//调用带有3个参数的构造函数
//        person2.show();
//    }
//}

////普通代码块
//public class Test_4_12{
//    public static void main(String[] args) {
//
//        { //直接使用{ }定义，普通方法块
//            int x = 66 ;
//            System.out.println("x1 = " + x);
//        }
//
//        int x = 99 ;
//        System.out.println("x2 = " +x);
//    }
//}

//class Person{
//    private String name;//实例成员变量
//    private int age;
//    private String sex;
//
//    public Person() {
//        System.out.println("测试一");
//    }
//
//    //实例代码块
//    {
//        this.name = "宝贝";
//        this.age = 13;
//        this.sex = "男";
//        System.out.println("测试二");
//    }
//
//    public void show(){
//        System.out.println("测试三");
//        System.out.println("name: "+name+" age: "+age+" sex: "+sex);
//    }
//
//}
//public class Test_4_12 {
//    public static void main(String[] args) {
//        Person p1 = new Person();
//        p1.show();
//
//    }
//}

//class Person{
//    private String name;//实例成员变量
//    private int age;
//    private String sex;
//    private static int count = 0;//静态成员变量 由类共享数据 方法区
//
//    //构造函数(构造方法)
//    public Person(){
//        System.out.println("测试一");
//    }
//
//    //实例代码块
//    {
//        this.name = "天线宝宝";
//        this.age = 6;
//        this.sex = "中性";
//        System.out.println("测试二");
//    }
//
//    //静态代码块
//    static {
//        count = 10;//只能访问静态数据成员
//        System.out.println("测试三");
//    }
//    //成员方法
//    public void show(){
//        System.out.println("测试四");
//        System.out.println("name: "+name+" age: "+age+" sex: "+sex);
//    }
//
//}
//public class Test_4_12 {
//    public static void main(String[] args) {
//        Person p1 = new Person();
//        System.out.println("-----------------");
//
//        Person p2 = new Person();//静态代码块是否还会被执行？
//        System.out.println("-----------------");
//
//        p1.show();
//    }
//}

//public class Test_4_12 {
//    public static void main(String[] args){
//
//        int[] arr = new int[]{1,2,3,3,2,1,4};
//        int rep = only(arr);
//        System.out.println(rep);
//    }
////第二种方法 普通方法
//    private static int only(int[] arr) {
//        for (int i = 0; i < arr.length; i++) {
//            int conut = 0;
//            //这里必须从开开始计算，j = i 是错的
//            for (int j = 0; j < arr.length; j++) {
//
//                if(arr[i] == arr[j])
//                    conut++;
//            }
//            if(conut == 1)
//                return arr[i];
//        }
//        return -1;
//    }
    //第一种方法 异或
//    public static int only(int[] arr){
//
//        int rep = arr[0];
//        for (int i = 1; i < arr.length; i++) {
//
//            rep ^= arr[i];
//        }
//        return rep;
//    }
//}